A significant problem in computer systems is the efficient use and management of the data stored in memory. The earliest computers maintained an independent file or database for the exclusive use of each program which ran on the computer. The difficulty with this arrangement is that for similar application programs, the databases maintained by each of these programs contained a significant amount of data redundancy.
The solution to this problem is the creation of a common database representing the collection of all interrelated data to serve a number of application programs. The data is stored in the database in an order or arrangement which is independent of the ordering of the data in the application programs which use the data.
Within each computer is a database management system which is a set of program instructions to manage this data and to function as an interface between the data and the application programs requesting access to the data. The database management system interface function is accomplished by a structure known as a schema. The schema is a mapping or a data model for the database. The schema indicates which elements in the database are required for use by a particular application program. In this fashion, the database management system isolates users from each other, since each application program accesses the common database through the schema which is maintained in the database management system for that particular application program. The schema permits access only to the data required for the operation of each application program.
Each database management system has its own architecture which relates to the physical structure and organization of the memory devices which are controlled by the database management system. The architecture also defines the logical interconnection and interrelation of the various files, records, record segments and schemas within the common database. This architecture is defined at the time the database is created and is reflected in an entity contained in each database management system called the data dictionary.
The data dictionary is a software structure that contains a list of all the application program databases contained in the common database and their associated schemas. The data dictionary also contains a definition of each schema and the various types of data elements which are stored in memory along with data security information. The difficulty with existing data dictionaries is that they are static and cannot be changed except by the database administrator, who must recompile the database system and the data dictionary with each change that is made to these elements.
A computer system user is typically unaware of the underlying database management system architecture and has no ability to change this architecture except through the database administrator. The database management system also stores data in a form and format dictated by the database management system architecture. The data can be accessed only by requesting the data in a manner that is consistent with this form and format. Therefore, the computer system user must write database-dependent application programs (data form and format specific) to access the data stored in the database. This rigidity of prior art database management systems introduces a whole new set of problems since the user cannot obtain information describing the collection of all data residing in the database. The user also cannot obtain the information contained in the database in a form and organization desired by the user without extensive application programs created by software experts.